/**
 * zmn文章模块-文章编辑
 * 文件命名格式：zmn.模块.表/功能.jas
 * @author duanzuocai
 * @since 2018/10/18
 */
layui.define(['form', 'layedit', 'laydate', 'upload', 'element'], function (exports) {
    let $ = layui.$;
    let form = layui.form;
    let layer = layui.layer;
    let layedit = layui.layedit;
    let laydate = layui.laydate;
    let upload = layui.upload;
    let element = layui.element;


    form.render(null, "zmn-company-form");
    let company = json.company;
    // 服务商不允许修改信息
    if(company.type==130){
        $("input,textarea,select").prop("disabled", 'disabled').addClass("layui-disabled");
        $("#subBtn").hide();
    }
    form.render('select');

    laydate.render({
        elem: '#registTime', //指定元素
        format: 'yyyy-MM-dd',
        type: 'date',
        range: false
    });

    // 自定义验证规则
    form.verify({
        title: function (value) {
            if (value.length < 2) {
                return "不能少于2个字符";
            }
            ;
        },
        numAndAZ: function (value) {
            if (value == null || value == "") {
                return;
            }
            if (!new RegExp(/^[0-9A-Za-z]+$/).test(value)) {
                return "只能是数字和字母";
            }
        },
        mobile: function (value) {
            if (value == null || value == "") {
                return;
            }
            if (!new RegExp(/^[0-9]{11}$/).test(value)) {
                return "手机号只能是11位数字";
            }
        },
        idCard: function (value) {
            if (value == null || value == "") {
                return;
            }
            if (!new RegExp(/^[0-9]{17}[0-9X]{1}$/).test(value)) {
                return "身份证号只能是18位，且数字或者X结尾";
            }
        },
        num: function (value) {
            if (value == null || value == "") {
                return;
            }
            if (!new RegExp(/^[0-9]+$/).test(value)) {
                return "只能是数字";
            }
        },
        minSort: function (value, item) { //value：表单的值、item：表单的DOM对象
            if (value < 5000) {
                return "排序号不能小于5000";
            }
        }
    });
    //取消按钮
    $("button.cancleBtn").click(function () {
        parent.layui.admin.events.closeThisTabs();
    });

    // 提交
    form.on('submit(zmn-form-submit)', function (obj) {
        var data = obj.field;
        var url = "/company/addEdit.action";
        //如果是服务商类型不允许修改
        if(data.type==130){
            layer.msg("服务商类型的公司不允许修改", {"icon": 2});
            return false;
        }

        // 如果存在子类型，那么子类型必选
        if($("#childTypeDiv").is(":visible")){
            if(!data.childType||data.childType==''||data.childType==0){
                layer.msg("公司子类型必选", {"icon": 2});
                return false;
            }
        }

        let orgTwoName = null;
        let orgThreeName = null;
        // 如果有二级那么必须选择三级
        if($("#orgTwoIdDiv").is(":visible")){
            if(!data.orgTwoId||data.orgTwoId==''||data.orgTwoId==0){
                layer.msg("二级组织架构必选", {"icon": 2});
                return false;
            }
            orgTwoName = $('#orgTwoId option:selected').text()
        }
        // 如果有二级那么必须选择三级
        if($("#orgThrIdDiv").is(":visible")){
            if(!data.orgThrId||data.orgThrId==''||data.orgThrId==0){
                layer.msg("三级组织架构必选", {"icon": 2});
                return false;
            }
            orgThreeName = $('#orgThrId option:selected').text();
        }

        // 对三个名称赋值
        let orgOneName = $('#plat option:selected').text();
        let orgId = null;
        let orgName = null;

        //平台大区子公司存在orgId
        if (data.type == 100) {
            orgId = data.plat;
            orgName = orgOneName;
        }

        //大区
        if (data.type == 110) {
            orgId = data.orgTwoId;
            orgName = orgTwoName;
        }

        //子公司
        if (data.type == 120) {
            orgId = data.orgThrId;
            orgName = orgThreeName;
        }

        //不存在子类型的默认赋值为10
        if(!data.childType){
            data.childType=10;
        }

        // data.orgOneName = orgOneName ? orgOneName : null;
        data.orgTwoName = orgTwoName ? orgTwoName : null;
        data.orgThrName = orgThreeName ? orgThreeName : null;
        data.orgId = orgId ? orgId : null;
        data.orgName = orgName ? orgName : null;
        var openId = layer.open({type: 3});
        let companyParam = $.extend(json.company, data);
        companyParam.subCompanyId=null;
        companyParam.subCompanyName=null;
        $.ajax({
            async: false,
            type: "POST", url: url,
            contentType: "application/json", dataType: "json", data: JSON.stringify(companyParam),
            success: function (json) {
                layer.close(openId);
                layer.msg(json.message);
                if (json.status == 200) {
                    setTimeout(function () {
                        window.location.href = "/company/companyMaterial.action?companyId=" + json.data + '&flag=2';
                    }, 1000);
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
            }
        })
        return false;
    });

    // 分类下拉框联动
    zmnPage.laySelectLinkage(form, "/common/area/listChilds.action", "provinceId", "cityId", "countyId");

    // 公司类型联动下级类型
    form.on("select(type)", function (obj) {
        let type = obj.value;
        // 存在子类型的公司，显示下拉框并获取下拉的值
        if (type == 100 || type == 130|| type==310) {
            $.ajax({
                async: false,
                type: "POST", url: "/common/organize/listChildTypes.action?parentType=" + type,
                contentType: "application/json",
                success: function (json) {
                    if (json.status == 200) {
                        let items = json.data;
                        if (items && items.length > 0) {
                            var optionHtml = '<option value="">选择</option>';
                            for (var i = 0; i < items.length; i++) {
                                optionHtml += '<option value="' + items[i]['key'] + '">' + items[i]['value'] + '</option>';
                            }
                            $("#childType").html(optionHtml);
                        }
                        form.render("select");
                        $("#childTypeDiv").show();
                        return;
                    }
                    $("#childType").html('');
                    $("#childTypeDiv").hide();
                    form.render("select");
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                }
            })
        } else {
            $("#childType").html('');
            $("#childTypeDiv").hide();
            form.render("select");
        }

        //平台公司，大区，子公司，服务商,电器公司，组织架构三级联动,其余只能选择一级
        // 平台公司，大区，子公司存在orgId,其余不存在，
        // 服务商电器公司存在subcompanyId，其余不存在
        /** 公司类型：100,平台公司，200 渠道  220 企业客户  230 厂商客户 300 支付平台  310 配件供应商  320 整机供应商 330 配送供应商 只能选择所属一级机构*/
        if (type >= 200||type==100) {
            $("#orgTwoId").html('');
            $("#orgThrId").html('');
            $("#orgTwoIdDiv").hide();
            $("#orgThrIdDiv").hide();
        }else if (type==110){
            $("#orgThrId").html('');
            $("#orgThrIdDiv").hide();
            $("#orgTwoId").html('<option value="">选择</option>');
            $("#orgTwoIdDiv").show();
        }
        else {
            $("#orgTwoId").html('<option value="">选择</option>');
            $("#orgThrId").html('<option value="">选择</option>');
            $("#orgTwoIdDiv").show();
            $("#orgThrIdDiv").show();
        }
        $("#plat option").removeAttr('selected');
        form.render("select");
    });

    // 组织结构分级联动,需要根据公司类型出现不同的联动方式
    form.on("select(plat)", function (obj) {
        let orgId = obj.value;
        if (!orgId || orgId == '') {
            return;
        }
        /** 公司类型：200 渠道  220 企业客户  230 厂商客户 300 支付平台  310 配件供应商  320 整机供应商 330 配送供应商 只能选择所属一级机构*/
        let type = $("#type").val();
        if (type >= 200||type==100) {
            $("#orgTwoId").html('');
            $("#orgThrId").html('');
            $("#orgTwoIdDiv").hide();
            $("#orgThrIdDiv").hide();
            form.render("select");
        }else if (type==110){
            $("#orgThrId").html('');
            $("#orgThrIdDiv").hide();
            renderHtml(1, orgId);
        }
        else {
            renderHtml(1, orgId);
        }

    });
    // 二级联动
    form.on("select(orgTwoId)", function (obj) {
        let orgId = obj.value;
        let type = $("#type").val();
        // 大区加载二级，无需三级联动
        if(type!=110){
            renderHtml(2, orgId);
        }

    });

    // 一级联动，清空二三级，二级联动清空三级
    function renderHtml(level, parentId) {
        let renderSelect = "";
        if (level == 1) {
            $("#orgTwoId").html('<option value="">选择</option>');
            $("#orgThrId").html('<option value="">选择</option>');
            renderSelect = "orgTwoId";
        } else if (level == 2) {
            $("#orgThrId").html('<option value="">选择</option>');
            renderSelect = "orgThrId";
        }
        form.render("select");
        if (!parentId || parentId == '') {
            return;
        }
        $.ajax({
            async: false,
            type: "POST", url: "/common/organize/listChilds.action?parentId=" + parentId,
            contentType: "application/json",
            success: function (json) {
                if (json.status == 200) {
                    let items = json.data;
                    if (items && items.length > 0) {
                        var optionHtml = '<option value="">选择</option>';
                        for (var i = 0; i < items.length; i++) {
                            optionHtml += '<option value="' + items[i]['value'] + '">' + items[i]['text'] + '</option>';
                        }
                        $("#" + renderSelect).html(optionHtml);
                        form.render("select");
                    }
                    // form.render("select");
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
            }
        });
    }


    //对外暴露的接口
    exports('art_company_detail', {});
});